/*【函数指针数组】
**概念：由若干个相同类型的函数指针变量构成的集合，在内存中连续的顺序存储。
**说明：函数指针数组是个数组，它的每一个元素都是一个函数指针变量。
**定义：类型名（*数组名[元素个数]）（形参列表）
** eg: int(*p[5])(int,int);
*/

#include<stdio.h>

//计算两数中最大值
int max(int x,int y){
	
	int temp;
	if(x > y)
		temp = x;
	else
		temp = y;
	
	return temp;
}
//计算两数中最小值
int min(int x,int y){
	
	int temp;
	if(x < y)
		temp = x;
	else
		temp = y;
	
	return temp;
}
//求两数之和
int add(int x,int y){

	return x + y;
}
//求两数之差
int sub(int x,int y){
	
	return x - y;
}
//求两数之积
int mux(int x,int y){

	return x * y;
}


int main(){
	
	int(*p[5])(int,int) = {max,min,add,sub,mux};	//声明一个函数指针数组p,并初始化
	int num;
	num = (*p[2])(10,20);
	printf("num = %d\n",num);
	
	return 0;
}